#ifndef __SXE_COMPAT_SPEC_H__
#define __SXE_COMPAT_SPEC_H__

#ifndef SPECIFIC_LINUX
#error "SPECIFIC_LINUX is undefined"
#endif

#ifdef NFS_4_0_0613   
#define HAVE_XDP_SUPPORT
#define HAVE_XDP_BUFF_DATA_META
#define XDP_XMIT_FRAME_FAILED_NEED_FREE
#define HAVE_XDP_QUERY_PROG
#define HAVE_NDO_SET_VF_LINK_STATE
#define XDP_RXQ_INFO_REQ_API_NEED_3_PARAMS
#define ETH_GET_HEADLEN_API_NEED_2_PARAM
#define NEED_SKB_FRAG_OFF_API
#define NEED_SKB_FRAG_OFF_ADD_API
#define NEED_SKB_FRAG_SIZE_API
#define HAVE_MACVLAN_OFFLOAD_SUPPORT
#define xdp_convert_buff_to_frame convert_to_xdp_frame
#define ETH_P_LLDP	0x88CC
#define netdev_xmit_more()	(skb->xmit_more)
#define SXE_KERNEL_MATCHED
#endif

#ifdef NFS_4_0_0612   
#define HAVE_XDP_SUPPORT
#define HAVE_XDP_BUFF_DATA_META
#define XDP_XMIT_FRAME_FAILED_NEED_FREE
#define HAVE_XDP_QUERY_PROG
#define HAVE_NDO_SET_VF_LINK_STATE
#define XDP_RXQ_INFO_REQ_API_NEED_3_PARAMS
#define ETH_GET_HEADLEN_API_NEED_2_PARAM
#define NEED_SKB_FRAG_OFF_API
#define NEED_SKB_FRAG_OFF_ADD_API
#define NEED_SKB_FRAG_SIZE_API
#define HAVE_MACVLAN_OFFLOAD_SUPPORT
#define xdp_convert_buff_to_frame convert_to_xdp_frame
#define ETH_P_LLDP	0x88CC
#define netdev_xmit_more()	(skb->xmit_more)
#define SXE_KERNEL_MATCHED
#endif

#ifdef UOS_1050   
#define HAVE_XDP_SUPPORT
#define HAVE_XDP_BUFF_DATA_META
#define XDP_XMIT_FRAME_FAILED_NEED_FREE
#define HAVE_XDP_QUERY_PROG
#define HAVE_NDO_SET_VF_LINK_STATE
#define XDP_RXQ_INFO_REQ_API_NEED_3_PARAMS
#define ETH_GET_HEADLEN_API_NEED_2_PARAM
#define NEED_SKB_FRAG_OFF_API
#define NEED_SKB_FRAG_OFF_ADD_API
#define NEED_SKB_FRAG_SIZE_API
#define HAVE_MACVLAN_OFFLOAD_SUPPORT
#define xdp_convert_buff_to_frame convert_to_xdp_frame
#define ETH_P_LLDP	0x88CC
#define NETDEV_XMIT_MORE_WORK_AROUND
#define SXE_KERNEL_MATCHED
#endif

#ifdef UOS_1060_4_19   
#define HAVE_XDP_SUPPORT
#define HAVE_XDP_BUFF_DATA_META
#define XDP_XMIT_FRAME_FAILED_NEED_FREE
#define HAVE_XDP_QUERY_PROG
#define HAVE_NDO_SET_VF_LINK_STATE
#define XDP_RXQ_INFO_REQ_API_NEED_3_PARAMS
#define ETH_GET_HEADLEN_API_NEED_2_PARAM
#define NEED_SKB_FRAG_OFF_API
#define NEED_SKB_FRAG_OFF_ADD_API
#define NEED_SKB_FRAG_SIZE_API
#define HAVE_MACVLAN_OFFLOAD_SUPPORT
#define xdp_convert_buff_to_frame convert_to_xdp_frame
#define ETH_P_LLDP	0x88CC
#define NETDEV_XMIT_MORE_WORK_AROUND
#define SXE_KERNEL_MATCHED
#endif

#ifdef UOS_1060_5_10    
#define HAVE_ETHTOOL_COALESCE_EXTACK
#define HAVE_ETHTOOL_EXTENDED_RINGPARAMS
#define XDP_RXQ_INFO_REQ_API_NEED_3_PARAMS
#define HAVE_XDP_SUPPORT
#define HAVE_XDP_BUFF_DATA_META
#define HAVE_MEM_TYPE_XSK_BUFF_POOL
#define HAVE_NETDEV_BPF_XSK_BUFF_POOL
#define HAVE_AF_XDP_ZERO_COPY
#define HAVE_XDP_BUFF_FRAME_SIZE
#define HAVE_SKB_CSUM_SCTP_API
#define HAVE_NETDEV_NESTED_PRIV
#define HAVE_TIMEOUT_TXQUEUE_IDX
#define HAVE_NET_PREFETCH_API
#define HAVE_DEV_PAGE_IS_REUSABLE_API
#define HAVE_NDO_XSK_WAKEUP
#define HAVE_NDO_FDB_ADD_EXTACK
#define HAVE_NDO_BRIDGE_SETLINK_EXTACK
#define HAVE_NDO_SET_VF_LINK_STATE
#define HAVE_MACVLAN_OFFLOAD_SUPPORT
#define SXE_KERNEL_MATCHED
#endif

#ifdef UOS_1070_4_19   
#define HAVE_XDP_SUPPORT
#define HAVE_XDP_BUFF_DATA_META
#define XDP_XMIT_FRAME_FAILED_NEED_FREE
#define HAVE_XDP_QUERY_PROG
#define HAVE_NDO_SET_VF_LINK_STATE
#define XDP_RXQ_INFO_REQ_API_NEED_3_PARAMS
#define NEED_SKB_FRAG_OFF_API
#define NEED_SKB_FRAG_OFF_ADD_API
#define NEED_SKB_FRAG_SIZE_API
#define HAVE_MACVLAN_OFFLOAD_SUPPORT
#define xdp_convert_buff_to_frame convert_to_xdp_frame
#define ETH_P_LLDP	0x88CC
#define SXE_KERNEL_MATCHED
#endif

#ifdef UOS_1070_5_10    
#define HAVE_ETHTOOL_COALESCE_EXTACK
#define HAVE_ETHTOOL_EXTENDED_RINGPARAMS
#define XDP_RXQ_INFO_REQ_API_NEED_3_PARAMS
#define HAVE_XDP_SUPPORT
#define HAVE_XDP_BUFF_DATA_META
#define HAVE_MEM_TYPE_XSK_BUFF_POOL
#define HAVE_NETDEV_BPF_XSK_BUFF_POOL
#define HAVE_AF_XDP_ZERO_COPY
#define HAVE_XDP_BUFF_FRAME_SIZE
#define HAVE_SKB_CSUM_SCTP_API
#define HAVE_NETDEV_NESTED_PRIV
#define HAVE_TIMEOUT_TXQUEUE_IDX
#define HAVE_NET_PREFETCH_API
#define HAVE_DEV_PAGE_IS_REUSABLE_API
#define HAVE_NDO_XSK_WAKEUP
#define HAVE_NDO_FDB_ADD_EXTACK
#define HAVE_NDO_BRIDGE_SETLINK_EXTACK
#define HAVE_NDO_SET_VF_LINK_STATE
#define HAVE_MACVLAN_OFFLOAD_SUPPORT
#define SXE_KERNEL_MATCHED
#endif

#ifdef CULINUX_3_0   
#define HAVE_ETHTOOL_COALESCE_EXTACK
#define HAVE_ETHTOOL_EXTENDED_RINGPARAMS
#define XDP_RXQ_INFO_REQ_API_NEED_3_PARAMS
#define HAVE_XDP_SUPPORT
#define HAVE_XDP_BUFF_DATA_META
#define HAVE_MEM_TYPE_XSK_BUFF_POOL
#define HAVE_NETDEV_BPF_XSK_BUFF_POOL
#define HAVE_AF_XDP_ZERO_COPY
#define HAVE_XDP_BUFF_FRAME_SIZE
#define HAVE_SKB_CSUM_SCTP_API
#define HAVE_NETDEV_NESTED_PRIV
#define HAVE_TIMEOUT_TXQUEUE_IDX
#define HAVE_NET_PREFETCH_API
#define HAVE_DEV_PAGE_IS_REUSABLE_API
#define HAVE_NDO_XSK_WAKEUP
#define HAVE_NDO_FDB_ADD_EXTACK
#define HAVE_NDO_BRIDGE_SETLINK_EXTACK
#define HAVE_NDO_SET_VF_LINK_STATE
#define HAVE_MACVLAN_OFFLOAD_SUPPORT
#define SXE_KERNEL_MATCHED
#endif

#ifdef KYLIN_10_SP2   
#define HAVE_XDP_SUPPORT
#define HAVE_XDP_BUFF_DATA_META
#define XDP_XMIT_FRAME_FAILED_NEED_FREE
#define HAVE_XDP_QUERY_PROG
#define HAVE_NDO_SET_VF_LINK_STATE
#define XDP_RXQ_INFO_REQ_API_NEED_3_PARAMS
#define ETH_GET_HEADLEN_API_NEED_2_PARAM
#define NEED_SKB_FRAG_OFF_API
#define NEED_SKB_FRAG_OFF_ADD_API
#define NEED_SKB_FRAG_SIZE_API
#define HAVE_MACVLAN_OFFLOAD_SUPPORT
#define xdp_convert_buff_to_frame convert_to_xdp_frame
#define ETH_P_LLDP	0x88CC
#define NETDEV_XMIT_MORE_WORK_AROUND
#define SXE_KERNEL_MATCHED
#endif

#ifdef KYLIN_0429   
#define HAVE_XDP_SUPPORT
#define HAVE_XDP_BUFF_DATA_META
#define XDP_XMIT_FRAME_FAILED_NEED_FREE
#define HAVE_XDP_QUERY_PROG
#define HAVE_NDO_SET_VF_LINK_STATE
#define XDP_RXQ_INFO_REQ_API_NEED_3_PARAMS
#define ETH_GET_HEADLEN_API_NEED_2_PARAM
#define NEED_SKB_FRAG_OFF_API
#define NEED_SKB_FRAG_OFF_ADD_API
#define NEED_SKB_FRAG_SIZE_API
#define HAVE_MACVLAN_OFFLOAD_SUPPORT
#define xdp_convert_buff_to_frame convert_to_xdp_frame
#define ETH_P_LLDP	0x88CC
#define NETDEV_XMIT_MORE_WORK_AROUND
#define SXE_KERNEL_MATCHED
#endif

#ifdef KYLIN_0721   
#define HAVE_XDP_SUPPORT
#define HAVE_XDP_BUFF_DATA_META
#define XDP_XMIT_FRAME_FAILED_NEED_FREE
#define HAVE_XDP_QUERY_PROG
#define HAVE_NDO_SET_VF_LINK_STATE
#define XDP_RXQ_INFO_REQ_API_NEED_3_PARAMS
#define ETH_GET_HEADLEN_API_NEED_2_PARAM
#define NEED_SKB_FRAG_OFF_API
#define NEED_SKB_FRAG_OFF_ADD_API
#define NEED_SKB_FRAG_SIZE_API
#define HAVE_MACVLAN_OFFLOAD_SUPPORT
#define HAVE_NETDEV_NESTED_PRIV
#define xdp_convert_buff_to_frame convert_to_xdp_frame
#define ETH_P_LLDP	0x88CC
#define NETDEV_XMIT_MORE_WORK_AROUND
#define SXE_KERNEL_MATCHED
#endif

#ifdef ANOLIS_8_8   
#define XDP_RXQ_INFO_REQ_API_NEED_3_PARAMS
#define HAVE_XDP_SUPPORT
#define HAVE_XDP_BUFF_DATA_META
#define HAVE_MEM_TYPE_XSK_BUFF_POOL
#define HAVE_NETDEV_BPF_XSK_BUFF_POOL
#define HAVE_AF_XDP_ZERO_COPY
#define HAVE_XDP_BUFF_FRAME_SIZE
#define HAVE_NETDEV_NESTED_PRIV
#define HAVE_TIMEOUT_TXQUEUE_IDX
#define HAVE_NET_PREFETCH_API
#define HAVE_NDO_XSK_WAKEUP
#define HAVE_NDO_FDB_ADD_EXTACK
#define HAVE_NDO_BRIDGE_SETLINK_EXTACK
#define HAVE_NDO_SET_VF_LINK_STATE
#define HAVE_MACVLAN_OFFLOAD_SUPPORT
#define SXE_KERNEL_MATCHED
#endif

#ifdef EULER_2203_LTS   
#define HAVE_ETHTOOL_COALESCE_EXTACK
#define HAVE_ETHTOOL_EXTENDED_RINGPARAMS
#define XDP_RXQ_INFO_REQ_API_NEED_3_PARAMS
#define HAVE_XDP_SUPPORT
#define HAVE_XDP_BUFF_DATA_META
#define HAVE_MEM_TYPE_XSK_BUFF_POOL
#define HAVE_NETDEV_BPF_XSK_BUFF_POOL
#define HAVE_AF_XDP_ZERO_COPY
#define HAVE_XDP_BUFF_FRAME_SIZE
#define HAVE_SKB_CSUM_SCTP_API
#define HAVE_NETDEV_NESTED_PRIV
#define HAVE_TIMEOUT_TXQUEUE_IDX
#define HAVE_NET_PREFETCH_API
#define HAVE_DEV_PAGE_IS_REUSABLE_API
#define HAVE_NDO_XSK_WAKEUP
#define HAVE_NDO_FDB_ADD_EXTACK
#define HAVE_NDO_BRIDGE_SETLINK_EXTACK
#define HAVE_NDO_SET_VF_LINK_STATE
#define HAVE_MACVLAN_OFFLOAD_SUPPORT
#define SXE_KERNEL_MATCHED
#endif

#ifdef BCLINUX_8_2_4_19   
#define HAVE_XDP_SUPPORT
#define HAVE_XDP_BUFF_DATA_META
#define HAVE_AF_XDP_ZERO_COPY
#define XDP_RXQ_INFO_REQ_API_NEED_3_PARAMS
#define XDP_XMIT_FRAME_FAILED_NEED_FREE
#define HAVE_XDP_QUERY_PROG
#define HAVE_TIMEOUT_TXQUEUE_IDX
#define HAVE_NDO_XSK_WAKEUP
#define HAVE_NDO_FDB_ADD_EXTACK
#define HAVE_NDO_BRIDGE_SETLINK_EXTACK
#define HAVE_NDO_SET_VF_LINK_STATE
#define HAVE_MACVLAN_OFFLOAD_SUPPORT

#define XDP_SETUP_XSK_POOL XDP_SETUP_XSK_UMEM
#define xdp_convert_buff_to_frame convert_to_xdp_frame
#define xsk_umem_discard_addr xsk_umem_release_addr
#define xsk_umem_discard_addr_rq xsk_umem_release_addr_rq
#define xsk_pool_get_rx_frame_size xsk_umem_get_rx_frame_size
#define xsk_pool_set_rxq_info xsk_buff_set_rxq_info
#define xsk_pool_dma_map xsk_buff_dma_map
#define xsk_pool_dma_unmap xsk_buff_dma_unmap
#define xsk_uses_need_wakeup xsk_umem_uses_need_wakeup
#define xsk_tx_peek_desc xsk_umem_consume_tx
#define xsk_tx_release xsk_umem_consume_tx_done
#define xsk_tx_completed xsk_umem_complete_tx
#define SXE_KERNEL_MATCHED
#endif

#ifdef BCLINUX_8_2_5_10   
#define XDP_RXQ_INFO_REQ_API_NEED_3_PARAMS
#define HAVE_XDP_SUPPORT
#define HAVE_XDP_BUFF_DATA_META
#define HAVE_MEM_TYPE_XSK_BUFF_POOL
#define HAVE_NETDEV_BPF_XSK_BUFF_POOL
#define HAVE_AF_XDP_ZERO_COPY
#define HAVE_XDP_BUFF_FRAME_SIZE
#define HAVE_NETDEV_NESTED_PRIV
#define HAVE_TIMEOUT_TXQUEUE_IDX
#define HAVE_NET_PREFETCH_API
#define HAVE_NDO_XSK_WAKEUP
#define HAVE_NDO_FDB_ADD_EXTACK
#define HAVE_NDO_BRIDGE_SETLINK_EXTACK
#define HAVE_NDO_SET_VF_LINK_STATE
#define HAVE_MACVLAN_OFFLOAD_SUPPORT
#define SXE_KERNEL_MATCHED
#endif

#endif 